<?php
namespace app\admin\controller;

use app\common\controller\AdminBase;
use app\common\model\Tag as TagModel;

/**
 * 标签管理
 * @package app\admin\controller
 */
class Tag extends AdminBase
{
    private $model=null;
    public function _initialize()
    {
        if (is_null($this->model)) {
            $this->model = new TagModel;
        }
    }
    # 管理标签页
    public function index()
    {
        $data=$this->model->getAllData();
        $this->assign('data', $data);
        return $this->fetch();
    }
    # 添加标签
    public function add()
    {
        if (!request()->isAjax()) {
            $this->redirect('admin/tag/index');
        }
        $data=input('post.');
        $result=$this->model->addData($data);
        if (is_array($result)) {
            return json(['errno'=>1,'msg'=>$result['msg']]);
        }
        if (!$result) {
            return json(['errno'=>1,'msg'=>'标签添加时发生错误']);
        }
        return json(['errno'=>0,'msg'=>'标签添加完成']);
    }
    # 编辑标签
    public function edit()
    {
        if (!request()->isPost()) {
            $id=input('get.id');
            if (!$data=$this->model->getById($id)) {
                return json(['errno'=>1,'msg'=>'获取标签数据时发生错误']);
            }
            return json(['errno'=>0,'msg'=>'获取标签数据成功','data'=>$data]);
        }
        $data=input('post.');
        $result=$this->model->editData($data['id'], $data);
        if (is_array($result)) {
            return json(['errno'=>1,'msg'=>$result['msg']]);
        }
        if (!$result) {
            return json(['errno'=>1,'msg'=>'标签编辑时发生错误']);
        }
        return json(['errno'=>0,'msg'=>'标签编辑完成']);
    }
    # 删除标签
    public function del()
    {
        if (!request()->isAjax()) {
            $this->redirect('admin/tag/index');
        } else {
            $data=input('post.');
            $result=$this->model->delData($data['id']);
            if (!$result) {
                return json(['errno'=>1,'msg'=>'标签删除时发生错误']);
            }
            return json(['errno'=>0,'msg'=>'标签删除成功']);
        }
    }
}
